<?php
/*-------------------------------------------------------
*
*   LiveStreet Engine Social Networking
*   Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
*   Official site: www.livestreet.ru
*   Contact e-mail: rus.engine@gmail.com
*
*   GNU General Public License, version 2:
*   http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/

/**
 * Маппер для работы с БД
 *
 * @package modules.userfeed
 * @since 1.0
 */
class ModuleUserfeed_MapperUserfeed extends Mapper {
	/**
	 * Подписать пользователя
	 *
	 * @param int $iUserId ID подписываемого пользователя
	 * @param int $iSubscribeType Тип подписки (см. константы класса)
	 * @param int $iTargetId ID цели подписки
	 * @return bool
	 */
	public function subscribeUser($iUserId, $iSubscribeType, $iTargetId) {
		$sql = 'SELECT * FROM ' . Config::Get('db.table.userfeed_subscribe') . ' WHERE
                user_id = ?d AND subscribe_type = ?d AND target_id = ?d';
		if (!$this->oDb->select($sql, $iUserId, $iSubscribeType, $iTargetId)) {
			$sql = 'INSERT INTO ' . Config::Get('db.table.userfeed_subscribe') . ' SET
                    user_id = ?d, subscribe_type = ?d, target_id = ?d';
			$this->oDb->query($sql, $iUserId, $iSubscribeType, $iTargetId);
			return true;
		}
		return false;
	}
	/**
	 * Отписать пользователя
	 *
	 * @param int $iUserId ID подписываемого пользователя
	 * @param int $iSubscribeType Тип подписки (см. константы класса)
	 * @param int $iTargetId ID цели подписки
	 * @return bool
	 */
	public function unsubscribeUser($iUserId, $iSubscribeType, $iTargetId) {
		$sql = 'DELETE FROM ' . Config::Get('db.table.userfeed_subscribe') . ' WHERE
                user_id = ?d AND subscribe_type = ?d AND target_id = ?d';
		$this->oDb->query($sql, $iUserId, $iSubscribeType, $iTargetId);
		return true;
	}
}